package com.inspur.edp.ai.flow.metadata;

import com.fasterxml.jackson.databind.JsonNode;
import io.iec.edp.caf.multicontext.annotation.Collect;
import lombok.Data;

import java.util.List;

/**
 * @author lizhaorui
 * @date 2025/8/14
 * @description
 */

@Data
@Collect
public abstract class AbsNode {

    private String id;

    private String kind;

    private String code;

    private String name;

    private String description;

    /**
     * 是否为有状态节点
     */
    private boolean stateful;


    private boolean inputSelf;

    /**
     * 输入参数列表
     */
    private List<Parameter> inputParams;

    /**
     * 输出参数列表
     */
    private List<Parameter> outputParams;

    /**
     * 输入端口列表
     */
    private List<String> inputPorts;

    /**
     * 输出端口列表
     */
    private List<String> outputPorts;

    /**
     * 前端画布属性,json结构如下：
     * {
     * "position": {
     * "x": 820,
     * "y": 33.30000000000001
     * }
     * }
     */
    private JsonNode graphMeta;

    /**
     * 是否为返回值节点
     */
    private boolean isReturnNode;

}